草庐IT

Java Event-Dispatching Thread 解释

全部标签

ruby - 如何解释音频编码的二进制数据?

我编写了一个小程序,可以将二进制数据编码成声音。例如下面的二进制输入:00101101会产生这样的“声音”:################..S.SS.S################其中每个字符代表一个恒定的时间单位。#代表880赫兹正弦波,用于确定传输的开始和结束,。代表静音,代表零,S代表一个440赫兹的正弦波,代表一个。显然,中间的部分在实践中要长得多。我的问题的本质是:我怎样才能反转这个操作?声音文件通过简单的播放和录音传输给接收者。这意味着我不会尝试解码原始声音文件,这很容易。显然,我必须根据频率分析记录的数据。但是怎么办?我已经阅读了一些有关傅立叶变换的内容,但我在这

ruby - 请解释这个 ruby 纤维示例背后的逻辑

示例代码来自here:defhttp_get(url)f=Fiber.currenthttp=EventMachine::HttpRequest.new(url).get#resumefiberoncehttpcallisdonehttp.callback{f.resume(http)}http.errback{f.resume(http)}returnFiber.yieldendEventMachine.rundoFiber.new{page=http_get('http://www.google.com/')puts"Fetchedpage:#{page.response_head

ruby-on-rails - Intellij 无法正确识别 Ruby 解释器

我一直在努力将正确版本的Ruby解释器设置到Intellij上。错误说::安全导航运算符至少需要Ruby2.3我明白这里的错误是什么意思。它的意思是“此功能在您当前的Ruby版本中不可用。”但是我不知道如何在IntellijBuild:163.10154.41中解决这个问题,我正确设置了RubySDK。本项目使用的Ruby版本为2.3.1,带有rbenv。我该如何解决这个问题? 最佳答案 删除{document_root}/.idea目录并再次将项目导入IntelliJ然后,当我之前遇到同样的问题时它又回来了。

ruby - 有人可以为我解释 ruby​​ 不断查找吗?

更具体地说:什么时候需要在作用域前加上::前缀(比如::Foo::Bar)什么时候可以直接引用作用域常量?(只是Foo::Bar)这种行为如此令人困惑是否有充分的理由?编辑:我正在谈论这样的事情moduleFooTHING='thing'moduleBarputsTHINGendend#=>thingmoduleFoo::BarputsTHINGend#=>NameError:uninitializedconstantFoo::Bar::THING 最佳答案 Whendoyouneedtoprefixthescopewith::(l

ruby - ruby解释器如何解析双引号字符串

背景:我正在实现一种类似于Ruby的语言,calledSapphire,作为尝试我对编程语言并发性的一些想法的一种方式。我正在尝试使用嵌入式代码复制Ruby的双引号字符串,我发现这对程序员非常有用。问题:Ruby解释器如何将带有嵌入式代码的双引号字符串转换为AST?例如:puts"Thevalueoffoois#{@foo}."puts"thisisanexampleofunmatchedbracesincode:#{foo.go('}')}"详细信息:我遇到的问题是如何决定哪个关闭代码块。代码块中可以有其他花括号,稍加努力就可以使它们不匹配。词法分析器可以找到字符串中代码块的开头,但

ruby - 在 Ruby 中,为什么可变性意味着解释器不能使用同一个对象来表示两个相同的字符串文字?

字符串在Ruby中是可变的。这意味着-与Java不同-解释器不能使用相同的对象来表示字符串文字(即for循环中的"test"将为每次迭代创建一个新对象)。有人可以向我解释为什么会这样吗?即,为什么可变性会阻止使用相同的对象来表示字符串文字? 最佳答案 two_foo=2.times.map{"foo"}two_foo[0]["foobar","foo"]如果"foo"只分配一次,然后重复使用,结果将是["foobar","foobar"],这将违反principleofleastastonishment.如果有人真的想这样做,应该明

ruby - 当 stdin 用作 ruby​​ 源时,将参数传递给 ruby​​ 解释器

我构建了一个railsdeploy仪表板,它在远程机器上启动一个ruby​​脚本来更新已部署的应用程序。运行脚本的命令如下所示:sshtest-host-02"wget-q-O-http://server/deploy.rb|sudoruby">/tmp/update-test-host-02.log2>&1现在我需要将参数传递给deploy.rb脚本。例如要部署哪个构建。将参数传递给deploy.rb的最佳方式是什么? 最佳答案 Ruby遵循允许您使用-指定标准输入的标准约定,它允许您在之后传递参数。$ruby---HELLOpu

ruby - 数组方程解释

如果有人能解释为什么这段代码的输出,我将不胜感激:*a,b=[1,2,3,4]a[b-2]+b是7。任何人都可以逐行分解它以便我了解这里发生了什么吗?这是如何变成7的? 最佳答案 要逐行分解任何内容,可以使用REPL:*a,b=[1,2,3,4]#⇒[1,2,3,4]a#⇒ [1,2,3]b#⇒ 4使用splat运算符,我们将原始数组分解为新数组和单个值。现在一切都清楚了:a[b-2]即a[2],它又是3(检查a数组。)并且b仍然是4。3+4#⇒ 7 关于ruby-数组方程解释,我们在S

ruby - 在改变解释方式的表达式上调用 'puts'?

我刚刚遇到一个问题,即函数返回的值会有所不同,具体取决于我是否对该结果调用puts。我想知道这是正常情况还是某种解析器错误。仅当传递给函数的block使用do...end语法而不是内联{...}语法时才会发生这种情况。这是一个例子:arr=["a","b","c"]putsi=arr.index{|x|=="b"}#=>1正如预期的那样,但这并不像我预期的那样有效:arr=["a","b","c"]putsi=arr.indexdo|x|x=="b"end#=>#如果我这样做的话效果很好:arr=["a","b","c"]i=arr.indexdo|x|x=="b"endputsi#=

ruby-on-rails - 解释 Ruby on Rails 中的迭代器语法

我开始学习RubyonRails,发现自己对语法感到困惑,所以我不得不阅读一些Ruby语法。我从http://www.cs.auckland.ac.nz/references/ruby/doc_bundle/Manual/man-1.4/syntax.html学到了语法:method_calldo[`|'expr...`|']expr...end他们称之为迭代器。我知道一个迭代器通过一个循环运行,但我不明白我应该如何准确地阅读这个或者这个语法中发生了什么。我一直在RoR截屏视频中看到它,这些话很有道理,但实际上我不知道发生了什么。谁能给我解释一下?编辑:示例respond_todo|f